#ifndef __A73C6D8C_8930_45da_9ED0_DBD1C6439ED8__
#define __A73C6D8C_8930_45da_9ED0_DBD1C6439ED8__

#include "../import/head.h"
#include "../tools/head.h"

/////////////////////////////////////////////////////////////////////////////////////////
// 

namespace xos
{
    class aio_key : public xos_stl::mem_pool_item< aio_key, thread_lock >
    {
    public:
        enum enumKeyState
        {
            KEY_STATE_NONE,
            KEY_STATE_RUNNING,
            KEY_STATE_CLOSING,
            KEY_STATE_CLOSED
        };

    public:
        aio_key();
        ~aio_key();

    public:
        // 
        // global address
        // 
        sockaddr_in m_remote_addr;
        sockaddr_in m_local_addr;

        // 
        // handl state
        // 
        enumKeyState m_eState;

        // 
        // io handle
        // 
        i_handle * m_pHandle;

        // 
        // post request num
        // 
        int m_nRequestNum;

        // 
        // user set key
        // 
        void * m_lpUserKey;

    public:
        int init();
        int term();

    public:
        int release();

    };
} // xos

#endif // __A73C6D8C_8930_45da_9ED0_DBD1C6439ED8__
